import Vue from 'vue'
import Vuex from 'vuex'
// 导入封装本地持久化操作的模块
import { setItem, getItem } from '@/utils/storage'

Vue.use(Vuex)

const TOKEN_KEY = 'TOUTIAO_USER'

export default new Vuex.Store({
  state: {
    // 该对象存储当前用户登录信息(token等数据)
    // user: null 仓库初始化用户数据不能为空 应该去本地持久化中取token数据
    // 并使用JSON.parse方法将该JSON字符串转为对象
    // 每次要写这么一大串不方便 封装起来了拉
    // user: JSON.parse(window.localStorage.getItem(TOKEN_KEY))
    user: getItem(TOKEN_KEY)
  },
  mutations: {
    setUser (state, data) {
      // 不能只将用户数据保存在state中 否则网页一刷新就会丢失
      state.user = data
      // 应该将数据持久化到本地 将state.user对象转成JSON格式的字符串存入
      // window.localStorage.setItem(TOKEN_KEY, JSON.stringify(state.user))
      setItem(TOKEN_KEY, state.user)
    }
  },
  actions: {
  },
  modules: {
  }
})
